This invention relates to data storage systems.
An access to a data storage disk proceeds via a sequence of acts that additively contribute to the time needed to complete the access. The sequence includes acts that physically align a disk""s read-write head with the physical storage volume being accessed and acts that actually transfer data to or from the physically aligned storage volume.
The physical alignment typically involves two movements. One movement is a radial travel of the read-write head that aligns the head with a start track of the storage volume to be accessed. The average time for the head travel is referred to as the seek time. The other movement is a rotation of the disk that aligns the read-write head with a start sector of the storage volume to be accessed. The average time for the disk rotational movement is referred to as the rotational latency time.
The total access time for a storage disk is the total time needed to complete the acts of the access. Thus, the total access time is a sum of the seek time, the rotational latency time, and the actual time to transfer data. The seek time can however, provide the dominant contribution to the total access time for many storage disks. Each contribution to the total access time is dynamical and can depend on the state of both the disk and the applications using the disk.
The dynamical nature of the contributions to the total access time is illustrated by the seek time. The seek time depends on access patterns for individual storage volumes of the disk. If the access pattern includes many consecutive accesses to the same physical storage volume, the seek time will be small. If the access pattern includes many consecutive accesses to new physical storage volumes, the seek time will be large. Determining the seek time usually requires measurements of access activity data for the physical storage volumes of the disk.
In a first aspect, the invention features a process for performing an intra-disk swap. The process includes finding a set of values indicative of access loads of new states of a disk. Each new state is produced from a current state of the disk by hypothetically swapping a pair of physical storage volumes of the disk. The process also includes swapping a pair of physical storage volumes based on the value of the access load of the new state produced by hypothetically swapping the pair.
In some embodiments, each value of the access load is either a seek time or a total access time. The act of swapping may be responsive to the swap of the associated pair of volumes producing the new state with the lowest value of the set.
In some embodiments, each value of the access time is either a seek time or a reduction to a seek time of the current state. The act of finding may perform a number of arithmetic operations to obtain the set of values, the number being of order of a number of values in the set.
The act of finding may also include finding a set of numerical objects from activity data for the current state and determining the seek time or reduction to seek time for each new state by evaluating a formula based on the found set of numerical objects. The set has of order N members with N being the number of storage volumes. The formula has less than of order N terms.
In these embodiments, the act of finding a set of numerical objects may include evaluating a set of equations {Rj+1=(Rj+aj)tRefp+1,p} for components of a vector object R. The xe2x80x9ctRefp+1,pxe2x80x9d is a number, and each aj is an activity of the storage volume with index xe2x80x9cjxe2x80x9d in the current state. Each act of determining may include evaluating [xe2x88x92(apxe2x88x92aq)[Rp+Rp*xe2x88x92Rqxe2x88x92Rq*]+(apxe2x88x92aq)2(tRefpp+tRefqqxe2x88x922tRefpq)]/F with F being the total activity of the current state.
In some embodiments, each act of finding a value includes performing a sum over component seek times to obtain a seek time for an associated new state. Each component seek time is a seek time associated with a reference head travel time function. For storage disks one form for the head travel time function is given by:
tkj=xj, for j=k, and tkj=xcex1|jxe2x88x92k| for jxe2x89xa0k.
For a selected value of xcex1, this form is referred to as a reference travel time function, tkjRef. The number xcex1 defines the particular reference travel time function, tkjRef, and may be a real or a complex number. For xcex1=1, the associated reference travel time function is independent of distance between the storage volumes xe2x80x9cjxe2x80x9d and xe2x80x9ckxe2x80x9d. For a set of values of xcex1, the reference travel time functions, tkjRef(n), can provide a series approximation to other head travel functions. Each term of each sum may be weighted by expansion coefficients of a head travel time function of the disk with respect to the reference travel time functions.
In a second aspect, the invention features a process for determining seek times. The process includes collecting activity data on a current state of a disk, finding a plurality of numerical objects from the activity data, and then, determining a plurality of seek times for new states from the found numerical objects. Each new state is related to the current state by a hypothetical swap of a pair of storage volumes of the disk. The seek times correspond to a preselected reference head travel time function.
In some embodiments, each act of determining a seek time includes performing a set of simple arithmetic operations less numerous than the physical storage volumes of the disk.
In some embodiments, the act of finding a plurality of numerical objects includes performing a set of simple arithmetic operations whose number is smaller than a square of the number of physical storage volumes on the disk.
In some embodiments, the reference head travel time function between a pair of the storage volumes is a weighted sum of numbers to powers of a distance between the pair of storage volumes.
In some embodiments, the act of finding a plurality of numerical objects includes evaluating a set of equations {Rj+1=(Rj+aj)tRefp+1,p} for a vector object R. Here, the xe2x80x9ctRefp+1,pxe2x80x9d is a number, and each aj is an activity of the storage volume with index xe2x80x9cjxe2x80x9d in the current state. The act of determining the seek time of the new state produced by hypothetically swapping may also include evaluating [xe2x88x92(apxe2x88x92aq)[Rp+Rp*xe2x88x92Rqxe2x88x92Rq*]+(apxe2x88x92aq)2(tRefpp+tRefqqxe2x88x922tRefpq)]/F with F being a total activity of the current state.
In a third aspect, the invention features a program storage media storing a computer executable program of instructions. The instructions cause a computer to perform one of the above-described processes.
In a fourth aspect, the invention features a system for performing an intra-disk swap. The system includes means for finding a set of values indicative of access loads of new states of a disk. Each new state is produced from a current state of the disk by hypothetically swapping a pair of physical storage volumes of the disk.
In some embodiments, the system further includes means for swapping one of the pairs of physical storage volumes based on the value of the access load of the new state produced by hypothetically swapping the one of the pairs. The access load may be a seek time or a total access time.
In some embodiments, the means for finding performs a number of arithmetic operations to obtain the set of values. The number is of order of the number of values in the set.
Other features and advantages of the invention will be apparent from the detailed description and claims.